package com.grj.parking.aa;


import com.grj.parking.domain.ParkingRecord;

/**
 * 停车策略函数式接口
 */
public interface ParkingStrategy {
    /**
     * 验证车牌
     * @param parkingRecord 停车上下文
     * @return 停车处理结果
     */
    ParkingRecord process(ParkingRecord parkingRecord);
    /**
     * 计费
     * @param parkingRecord 停车上下文
     * @return 停车处理结果
     */
    ParkingRecord process2(ParkingRecord parkingRecord);

    /**
     * 开闸
     * @param parkingRecord 停车上下文
     * @return 停车处理结果
     */
    ParkingRecord process3(ParkingRecord parkingRecord);

    /**
     * 释放停车位， 停车记录
     * @param parkingRecord 停车上下文
     * @return 停车处理结果
     */
    ParkingRecord process4(ParkingRecord parkingRecord);
}
